﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Abstract
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.编写一个程序，以实现机器人的层次结构，此层次结构
            //将至少包含抽象类机器人类Robot、炒菜机器人类CookRobot、传菜机器人类DeliveryRobot。
            //Robot类应包含机器人姓名name字段、机器人工作的方法Working()，
            //该方法应该在子类中被实现，机器人工作的方式很多，所以Working()方法应该被定义为抽象方法。
            //可以在CookRobot中添加一个代表菜的类型的字段，用枚举类型；
            // 在DeliveryRobot中添加一个代表连续工作时长的字段hours。
            //CookRobot和DeliveryRobot应实现具体的Working()方法。


            //在主类中定义一个方法，形参数据类型是string，返回值数据类型是Robot，
            //方法中实现如果传入的字符串是“炒菜”，那就返回CookRobot的实例（当然是要用Robot的引用指向的），
            //如果传入的字符串是“传菜”，那就返回DeliveryRobot的实例。
            //Main方法中：用户输入所选择的机器人的功能，根据用户的输入Robot执行对应的功能。
            Console.WriteLine("请选择工作模式：（做菜or传菜）");
            string chooes =Console.ReadLine();
            Console.WriteLine("请输入工作时长");

            double hours = double.Parse(Console.ReadLine());
            Robot robot = GetRobot(chooes);
            Food food = new Food();
            if (robot!=null)
            {
                robot.Working(food,hours);

            }
            Console.ReadKey();
        }
        public static Robot GetRobot(string chooes)
        {
            Robot robot = null;
            if (chooes.Equals("做菜"))
            {
                
                //robot = new CookRobot("做菜机器人",Food.鸡胸肉);
                //robot = new CookRobot("做菜机器人", Food.空心菜);
                //robot = new CookRobot("做菜机器人", Food.可乐鸡翅);
                //robot = new CookRobot("做菜机器人", Food.包菜);
                robot = new CookRobot("做菜机器人", Food.五花肉);
            }
            else if (chooes.Equals("传菜"))
            {
               
                
                robot = new DeliveryRobot("传菜机器人");
            }
            return robot;



        }
    }
}
